Last Push before I revamp. This is ok but not great code.