Added More Rules
Added a rules factory
Added some end to end tests

Added more unit tests