implement new features