separate out abstractions into different files