This definitely needs work, SE!