add builder and prototype