Refactor for simplicity

And to make everything a bit more lazy for better design