first commit with better config design