refactored project to include shared lib