ooh functions
woops forgot the actual file