started on some generic builder idea