less code due to decorators