reasonable version
ALmost there...