resolved #3 resolved #6 resolved #5