resolved #15
resolved #16
resolved #12