better printing, started the is_legal method
finished is_legal