basic behavior working and code reasonably clean