Updated with Josh's comments, removed asInstanceOf