Why do you have a doFill param if you have a canFill method. THat is redundant. if you have a canFill method make sure you actually use it in the fill method.. or else it is rather pointless