adding functionality and organization