Split framework from implementation