Use interval instead of timeout and cleanup on scope destroy
Major refactor of the input directives for better performance