nothing wrong with abstractions just dont make ones you cant back out of