code is now nicer