bulid method