complete validation with checks for previously used
add animate function