Got stuff working need to refactor to make it more semantic