All that's left is prettify/refactoring