Initial implementation.
Add workaround that makes completion actually work.