remove own InvalidException, use standard InvalidArgumentException
added __toString method
added classes Action and Functionality