Clean code for better abstraction