I'll work on this more later..