really need to commit all this, got carried away