Changed to more polymorphistic outline