major changes on interface