Started big refact...