Add GetPrice event
Misc refactoring
Move some not-so-common stuff out of the infrastructure project