Design and synthesis of open frameworks