refactored, added concept