added builder and externalized settings