add basic functionality
redesign