many changes (passed core test)