Done with basic functionality, have not refactored