added core functionality and custom cells