on my way to make it scalable