add callbakc & prepare
respect width & height + bug fixes with callbacks