fixed init
TODO: cleanup