refatoring: project structure