more work
basic functionality is done