TODO documentation
refactor directive structure
package rename