All aspects need to be heavily refactored, before more features are to be added.