work on builder implementation