inspired by Portal.