Moved to lib directory for better structure