almost there
not really almost there but...
refactoring