Use .NET 2.0 instead of a .NET 2.0 subset
Clean up

- Replace a factory with reflection

- Move all node classes to their own files