stages should be optional