updated with some new features