improved eficiency and added comparison. also improved move method.GM added exptions, need to check for 0 and negatives