added more asserts, wrote pre and post conditions for most methods, added some util methods, starting check pre and post conditions in debug mode