matrix : almost over hard due, still not finished...