cleaned up init a bit more, down to 25 lines