Slightly more functionality in perform