works, but slow... will change from pixel iterations