Dev abstract models

Please refactor and split on few methods(createNameText etc.) The listeners can be defined as private classes