rewriting what I missed :p