More refactoring

it's going to be great...