Some improvements, still needs work