Splitting into more files as discussed in #11