running only once instead of multiple steps
remove unused params
fix observer count