core functionality and design COMPLETE