Initial implementation of general