added new features, see readme