Initial implementation with a basic UI