Refactor away from static state element factories; add Select box impl