Copied all files from infrastructure project

This is all required base functionality including tests