long descriptions + refactoring a few things