added creatable function
added remaining functionality