moved builder to a separate package