add more advanced features