This should cover all the options possible for now