Rick - Currently messy. will cleanup