constructor api