completely refactored, now with structure and new UI