Moved separate functionality into separate shared libraries