Removed some unnecessary headers
Added main method
Fixed bug with reaction selection logic
Added different reaction types