merged with new features