descripitions added, code refactoring