Finish basic system, needs refactoring