This is my take on a client side javascript framework