adjusted the interfaces to support parameters. not tested yet.