reads better
maximize flexibility