Feels like overkill for just 3 functions...